﻿// ***********************************************************************
// Assembly         : YERIL_PI_INT
// Author           : Diego Bonilla
// Created          : 03-02-2014
//
// Last Modified By : Diego Bonilla
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="ProyectoParticipantes.aspx.cs" company="Development Solutions CR">
//     Copyright (c) Development Solutions CR. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

/// <summary>
/// The Login namespace.
/// </summary>
namespace YERIL_PI_INT.PaginasWebs.Modulos.Login
{
    /// <summary>
    /// Class ProyectoParticipantes.
    /// </summary>
    public partial class ProyectoParticipantes : System.Web.UI.Page
    {
        /// <summary>
        /// The mensaje error
        /// </summary>
        public string MensajeError = "";
        /// <summary>
        /// The codigo proyecto
        /// </summary>
        static int codigoProyecto = 0;
        /// <summary>
        /// The seleccion
        /// </summary>
        public string seleccion = "";
        /// <summary>
        /// The codigo_usu
        /// </summary>
        static int codigo_usu = 0;
        /// <summary>
        /// The codigo_sel
        /// </summary>
        static int codigo_sel = 0;
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["CodigoProyecto"] != null)
            {
                codigoProyecto = Convert.ToInt32(Session["CodigoProyecto"]);

            }

            if (Session["CodigoUsuario"] != null)
            {
                codigo_usu = Convert.ToInt32(Session["CodigoUsuario"]);

            }

            CargarGrid();

            if (!IsPostBack)
            {

                Cargar_Lista();

            }
        }

        /// <summary>
        /// Cargars the grid.
        /// </summary>
        public void CargarGrid()
        {
            try
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("Código Usuario", Type.GetType("System.String"));
                dt.Columns.Add("Nombre Usuario", Type.GetType("System.String"));

                int cont = dt.Columns.Count;
                for (int i = 0; i < listaUsuarios().Count; i++)
                {
                    dt.Rows.Add();
                    dt.Rows[dt.Rows.Count - 1]["Código Usuario"] = listaUsuarios()[i].USU_codusuario;
                    dt.Rows[dt.Rows.Count - 1]["Nombre Usuario"] = listaUsuarios()[i].USU_nombre;

                }

                gvProyectoParticipante.DataSource = dt;
                gvProyectoParticipante.DataBind();
            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }




        }

        /// <summary>
        /// Listas the usuarios.
        /// </summary>
        /// <returns>List{WSGestion.MOD_Usuarios}.</returns>
        private List<WSGestion.MOD_Usuarios> listaUsuarios()
        {

            WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
            wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
            List<WSGestion.MOD_Usuarios> listaUsuarios = wsgest.SEL_Grid_Proyecto_Participante(codigoProyecto).ToList();
            return listaUsuarios;

        }

        /// <summary>
        /// Cargar_s the lista.
        /// </summary>
        private void Cargar_Lista()
        {
            try
            {
                WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                List<WSGestion.MOD_Usuarios> ListaUsuarios = wsgest.SEL_LISTA_USUARIOPARTICIPANTE(codigo_usu).ToList();
                this.lbxUsuarios.DataSource = ListaUsuarios;
                this.lbxUsuarios.DataValueField = "USU_codusuario";
                this.lbxUsuarios.DataTextField = "USU_nombre";
                this.lbxUsuarios.DataBind();

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }
        }

        /// <summary>
        /// Handles the Click event of the btnAgregar control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnAgregar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {

                WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                WSGestion.MOD_Proyecto Proyecto = new WSGestion.MOD_Proyecto();
                Proyecto.Proy_codproyecto=codigoProyecto;
                Proyecto.Proy_codusuario= Convert.ToInt32(lbxUsuarios.SelectedValue);
                int cant_pro = wsgest.SEL_ProyectoParticipanteByIDs(Proyecto.Proy_codproyecto, Proyecto.Proy_codusuario);
                if (cant_pro == 0)
                {
                    if (wsgest.CRE_Proyecto_Participante(Proyecto))
                    {
                        MensajeError = "El Usuario " + lbxUsuarios.SelectedItem + " se ha agregado.";
                        CargarGrid();
                    }
                    else
                    {
                        MensajeError = "Procedimiento Almacenado no aceptado";
                    }

                }

                else
                {
                    MensajeError = "No es valido introducir el mismo usuario. Por favor, intente con otro de la lista.";
                }





            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }

        }

        /// <summary>
        /// Handles the Click event of the btnEliminar control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnEliminar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (codigo_sel == 0)
                {
                    MensajeError = "No se ha seleccionado un Proyecto";
                }
                else
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    wsgest.DEL_Proyecto_Participante(codigoProyecto,codigo_sel);
                    CargarGrid();
                }
            }
            catch (Exception exc)
            {

                MensajeError = exc.Message.ToString();
            }
        }

        /// <summary>
        /// Handles the SelectedIndexChanged event of the gvProyectoParticipante control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void gvProyectoParticipante_SelectedIndexChanged(object sender, EventArgs e)
        {
            seleccion = gvProyectoParticipante.SelectedRow.Cells[2].Text;
            codigo_sel = Convert.ToInt32(gvProyectoParticipante.SelectedRow.Cells[1].Text);
            MensajeError = "Se ha seleccionado el usuario: " + seleccion;
        }

        protected void btnAgregarCliente_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("GridProyectos.aspx");
        }

    }
}